What is Craft CMS and How to Install It on a Server?
Greetings, friends!
Today, I want to discuss one of the most powerful and flexible content management tools — Craft CMS.
While we choose Wonder CMS for its microscopic size, Craft CMS is the choice for professionals who need full control. It is a modern, open-source system that has won the hearts of developers with its flexibility and truly powerful functionality. Unlike WordPress, Craft doesn't impose its rules on you — you build the site structure from scratch, like a Lego set. Because of this, creating a website is a pure pleasure for developers of all levels.
Craft CMS has become a favorite among agencies and brands that prioritize performance and security. It is most often chosen for:
Complex corporate portals;
Unique designer portfolios;
Scalable landing pages with custom functionality.
In this article, we will break down in detail why Craft CMS is a brilliant solution in 2026, what resources your server needs (spoiler: unlike Wonder CMS, you will need a database here!), and I have also prepared a video installation guide for you.
System Requirements
Unlike "flat-file" systems, Craft CMS requires a full environment. Since the system is PHP-based and requires Composer, it's better not to skimp on RAM.
| Parameter | Minimum | Recommended (MivoCloud Ryzen) |
| Processor (CPU) | 1 core | 2 cores (for fast admin panel performance) |
| RAM | 1 GB | 2 GB (Composer loves memory; in my videos, I use 4 GB RAM) |
| Disk (Storage) | 10 GB SSD | 20 GB NVMe |
| Database | MySQL 8.0+ / PostgreSQL 13+ | MySQL 8.0+ |
| PHP Version | 8.2+ | 8.3 (the most relevant in 2026) |
Installing Craft CMS on Ubuntu 24.04
Before starting, make sure you have sudo privileges. The process will take about 5-10 minutes.
Step 1: Preparing the Environment (LAMP Stack)
Update the system and install the Apache web server, MariaDB database, and necessary PHP modules:
sudo apt update && sudo apt upgrade -ysudo apt install apache2 mariadb-server php php-cli libapache2-mod-php php-common php-curl php-gd php-imagick php-mbstring php-mysql php-xml php-zip php-intl php-bcmath -y
Tip: After installation, check your PHP settings (memory limits and script execution time): sudo nano /etc/php/8.3/apache2/php.ini
Step 2: Creating the Database
Craft CMS is a powerful system that needs a reliable database. Log into MySQL:
sudo mysql -u root
And run the following commands (replace YourStrongPassword with your actual password):
CREATE DATABASE craft_db;
CREATE USER 'craft_user'@'localhost' IDENTIFIED BY 'YourStrongPassword';
GRANT ALL PRIVILEGES ON craft_db.* TO 'craft_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Step 3: Installing Composer and Craft CMS
Craft is installed via the Composer package manager. This ensures that all dependencies are the correct versions.
# Install Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
# Create the project
cd /var/www/html
sudo composer create-project craftcms/craft my-project
Step 4: Permissions and Apache Configuration
Permissions are a crucial point. The server must be able to write data to the project folders.
sudo chown -R www-data:www-data /var/www/html/my-project
sudo chmod -R 755 /var/www/html/my-project
Now, create a configuration file for your site: sudo nano /etc/apache2/sites-available/craft.conf.
Insert the following configuration:
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/html/my-project/web
<Directory /var/www/html/my-project/web>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Activate the site and restart the server:
sudo a2ensite craft.conf
sudo a2enmod rewrite
sudo systemctl restart apache2
Completing the Installation
Now, open your browser and go to: http://your-server-ip/admin. The system will prompt you to go through the Setup Wizard, where you will enter the database details created earlier and create an administrator account.
FAQ: Frequently Asked Questions
Why is Craft CMS installed in the /web folder? This is for security reasons. Only the
/webfolder is publicly accessible, while all core system files and your configs are located one level above. This prevents malicious actors from directly accessing the code, significantly increasing the security of your site and server.Can I use Nginx instead of Apache? Of course! Craft works perfectly on Nginx, and the configuration will even be slightly more performant.
Do I need a license? Craft CMS has a free version (Solo) for personal projects. For commercial sites with multiple administrators, a Pro license is required. And believe me, it’s better to pay for a license than to use the free version for several developers.
Video Installation Guide
For those who want to see the process "live," I have prepared a video where I go through all these steps on a clean MivoCloud server:
Conclusion
Craft CMS is the solution for those who value clean code and configuration flexibility. It requires slightly more resources than simpler CMSs, but on servers with Ryzen processors, the admin panel experience will be perfectly smooth.
Good luck with creating your unique project!
Article author — Anatolie Cohaniuc

